package testDao;

import java.util.ArrayList;
import java.util.Calendar;

import org.junit.BeforeClass;
import org.junit.Test;

import bean.BiedingBean;
import bean.GebruikerBean;
import bean.VeilingBean;
import dao.BiedingDao;
import dao.GebruikerDao;
import dao.VeilingDao;
import db.BuildDB;
import db.DBManager;
import exceptions.GebruikerBestaatAlException;
import exceptions.GebruikerBestaatNietException;

public class testBiedingenDao
{

	private static GebruikerDao Gdao;
	private static VeilingDao Vdao;
	private static BiedingDao Bdao;
	private static DBManager manager;

	@BeforeClass
	public static void setUpBeforeClass()
	{
		manager = DBManager.getInstance();
		DBManager.setParameters("org.apache.derby.jdbc.EmbeddedDriver","jdbc:derby:%home%\\VeilingDatabase;create=true");
		BuildDB.dropTables();
		BuildDB.buildTables();

		Bdao = new BiedingDao(manager);
		Vdao = new VeilingDao(manager);
		Gdao = new GebruikerDao(manager);
	}

	@Test
	public void addBieding()
	{
		// TODO
	}

	@Test
	public void addMultiBieding()
	{
		// TODO
	}

	@Test
	public void testBiedingen()
	{
		// TODO weghalen
		try
		{
			Gdao.addGebruiker("Piet", "Pietlaan 1", "11-11-11", "piet@gmail.com", "123");
		} catch (GebruikerBestaatAlException e)
		{
			e.printStackTrace();
		}
		GebruikerBean g = null;
		try
		{
			g = Gdao.getGebruiker("piet@gmail.com");
		} catch (GebruikerBestaatNietException e1)
		{
			e1.printStackTrace();
		}
		System.out.println(g);
		Vdao.addVeiling(g, Calendar.getInstance(), Calendar.getInstance(), "Een veiling", "goedkoop enz", 1);

		VeilingBean veiling = Vdao.getVeilingen(10).get(0);
		GebruikerBean gebruiker = null;
		try
		{
			gebruiker = Gdao.getGebruiker("piet@gmail.com");
		} catch (GebruikerBestaatNietException e)
		{
			e.printStackTrace();
		}

		Bdao.addBieding(gebruiker, veiling, 100);
		ArrayList<BiedingBean> biedingen = Bdao.getBiedingen(veiling);

		for (BiedingBean bieding : biedingen)
		{
			System.out.println(bieding);
		}

	}

}
